
// 调整后的 Promise 形式封装
export const listenStreamPromise = (id: string): Promise<any> => {
    return new Promise((resolve, reject) => {
        let resultData: any[] = []; // 用于存储所有接收到的数据

        const handler = (event: any, data: any) => {
            console.log(id, data);
            
            // 传递数据给外部
            if (data.code === 0) {
                // 标准输出，保存数据
                console.log(id, data.data);
                resultData.push(data);
            } else if (data.code === -1) {
                // 错误情况
                // window.ipcApi.off(id, handler); // 正确移除监听器
                console.error(id, data);
                resultData.push(data);
                resolve(resultData);
            } else if (data.code === 1) {
                // 完成情况 - 保存最终数据并返回所有收集到的数据
                resultData.push(data);
                window.ipcApi.off(id, handler); // 正确移除监听器
                resolve(resultData); // 返回所有收集到的数据
            }
        };

        window.ipcApi.on(id, handler);
    });
};